package com.wwj.tem.utils;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;

import java.util.Collections;

/**
 * @author: wwj
 * @create: 2024/7/7 - 20:55
 * Description: 代码生成器
 */
public class CodeGenerator {
	public static void main(String[] args) {
		generator();
	}
	
	public static void generator() {
		FastAutoGenerator.create("jdbc:mysql://localhost:3306/doubei-dev?characterEncoding=utf8&serverTimezone=GMT%2B8", "root", "123456")
				.globalConfig(builder -> {
					builder.author("wwj") // 设置作者
							.enableSwagger() // 开启 swagger 模式
//							.fileOverride() // 覆盖已生成文件
							.outputDir("D:\\Project\\后端\\doubei\\doubei-wx\\src\\main\\java\\"); // 指定输出目录
				})
				.packageConfig(builder -> {
					builder.parent("com.wwj.wx") // 设置父包名
							.moduleName(null) // 设置父包模块名
							.pathInfo(Collections.singletonMap(OutputFile.mapperXml,
									"D:\\Project\\后端\\doubei\\doubei-wx\\src\\main\\resources\\mapper\\")); // 设置mapperXml生成路径
				})
				.strategyConfig(builder -> {
					builder.entityBuilder().enableLombok();
					builder.mapperBuilder().enableMapperAnnotation().build();
					builder.controllerBuilder().enableHyphenStyle()  // 开启驼峰转连字符
							.enableRestStyle();
					builder.addInclude("doubei_purse") // 设置需要生成的表名
							.addTablePrefix("doubei_", "c_"); // 设置过滤表前缀
				})
//				.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板，默认的是Velocity引擎模板
				.execute();
	}
}
